﻿using GN.Framework.Domain.Repositories.QueryProtocol;
using GN.Pay.Application.Dto.Input;
using GN.Pay.Application.MerchantApp.Dto.Input;
using GN.Pay.Application.MerchantApp.Dto.Output;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GN.Pay.Application.MerchantApp
{
    /// <summary>
    /// 商户应用信息应用服务
    /// </summary>
    public interface IMerchantAppInfoAppService : IPayAppService
    {
        /// <summary>
        /// 添加应用
        /// </summary>
        /// <param name="input">输入</param>
        /// <returns></returns>
        MerchantAppInfoAddOutput Add(MerchantAppInfoAddInput input);

        /// <summary>
        /// 修改应用
        /// </summary>
        /// <param name="input">输入</param>
        /// <returns></returns>
        MerchantAppInfoOutput Modify(MerchantAppInfoModifyInput input);

        /// <summary>
        /// 应用列表
        /// </summary>
        /// <param name="option">选项</param>
        /// <returns></returns>
        PageQueryResult<MerchantAppInfoOutput> List(PageQueryOption option);

        /// <summary>
        /// 查询AppKey
        /// </summary>
        /// <param name="input">输入</param>
        /// <returns></returns>
        string QueryAppKey(PrimaryKeyInput<string> input);

        /// <summary>
        /// 更新AppKey
        /// </summary>
        /// <param name="input">输入</param>
        /// <returns></returns>
        string UpdateAppKey(PrimaryKeyInput<string> input);
    }
}
